using System;

using DesignByContract;

namespace Outcoding.GraphGenerator.Entities {

    public class Line {

        #region Private Helper Classes (1)
        private class Constants {
            public const int DEFAULT_MARKER_SIZE = 10;
            public const bool DEFAULT_ISSMOOTH = false;
        }
        #endregion

        private int mMarkerSize = Constants.DEFAULT_MARKER_SIZE;

        private bool mIsSmooth = Constants.DEFAULT_ISSMOOTH;

        private MarkerStyle mMarkerStyle;

        public int MarkerSize {
            get { return mMarkerSize; }
            set { 
                Check.Ensure(value > 0, "Size value cannot be less than zero.", new ArgumentOutOfRangeException());
                mMarkerSize = value; }
        }

        public bool IsSmooth {
            get { return mIsSmooth; }
            set { mIsSmooth = value; }
        }

        public MarkerStyle MarkerShape {
            get { return mMarkerStyle; }
            set { mMarkerStyle = value; }
        }

    }
}
